[イベントレポート] 「JXUGC #24 春のApp Center祭り」に参加してきました! #JXUG #VSAppCenter
はじめに
こんにちは!加藤 潤です。
2018/01/20(土)にJXUG(JAPAN XAMARIN USER GROUP)主催のVisual Studio App Center勉強会に参加したのでその模様をレポートします。
イベント概要
こんにちは。エクセルソフトの田淵です。
みなさん、Connect(); 2017 見ましたか?旧 Visual Studio Mobile Center が Visual Studio App Center と名前を変えて GA(General Availability)しましたね。
Xamarin Test Cloud に相当する実機でのテストだけが有料で他は結構無料で使えるみたいです。ありがたいですね!!
そこで JXUG で App Center の勉強会を開催します。
セッションを聞いて概要を理解したら実際にハンズオンで App Center で自動ビルドや Analytics を体験してみましょう!
オープニングセッション
スピーカーはApp Center 開発チームの人、Luke さん(@0xLukeKim)です。
LukeさんはBuildやCI周りの全てをリードしている人とのこと。
オープニングセッション。実際に App Center を作っている人である、本社のルークさんが、製品チームとしての目線で App Center について話してくれます。(今回のイベントのためにわざわざ来日してくれました。ありがとうございます!) セッションは英語ですが、彼は簡単な英語 && リアルタイム自動翻訳 の アドイン入れてプレゼンしてくれます!神対応)
スライド
資料が公開され次第掲載します。
内容
- エンジニアの典型的な1日について
- ハッカーニュースを見たり、ユニットテストを行ったり、デバッグしたり、いろいろなこと(Lukeさんはこれらをオーバーヘッドと言っていました)をしている。これってディスクのフラグメンテーションに似てませんか?
- アプリ開発の課題
- オーバーヘッドによりディスクのフラグメンテーションのように開発の時間が細切れになってしまうこと
- なぜApp Centerを作ったか
- 開発者の時間をデフラグしたかった
- 開発者の役に立つものを作りたかった
- 我々のミッションは「アプリ開発を10倍簡単にする」ことだが、当時既にHockey AppやXamarin Text Cloudなどの便利なサービスを持っていたのでそれらのサービスを束ねてApp Centerを作った
- App Centerを使うことでオーバーヘッドをデフラグ(圧縮)し、開発の時間を確保することができる
Lukeさんのセッションは本当に「開発者の役に立つものを作りたい!」という熱意が伝わってきました。また、機能要望や質問、フィードバックはApp Centerの画面から直接できるのでぜひお願いしますとのことでした。
せっかくなのでLukeさんに質問してみました!
- Q. 他のサービスと比べた優位性は何?
- A. ほとんどのサービスは無料で使えるし、有料なサービスも使いたいものだけ使えます。
- Q. 普段Azureを使っていない開発者でも使えるものなの? Azureの知識が必要なの?
- A. App Centerのいくつかのサービスは裏側でAzureが動いてるが、開発者のみなさんが作るアプリがAzureに繋がっている必要はないので安心して使ってください。
Visual Studio App Center 概要
スピーカーはMicrosoftのかずきさん(@okazuki)です。
スライド
内容
機能について幅広く解説していただきました。
- ビルドについてはクローン後、ビルド前、ビルド後にスクリプトを実行可能なのでそこで色々カスタマイズできる
- 環境変数を定義できるのでAPI Keyを直接リポジトリに埋め込む必要が無い
- テスト数千の実機から選択して自動UIテストを実行
- Appium、Calabash、Espresso、Xamarin.UITestに対応
- グローバルな端末は多いが、日本メーカーの端末はあまりないのが現状
- アプリ配布はグループに対してビルド成果物を自動配布する機能
- 公開用のWebページを作って配布できる
- クラッシュ状況のレポート機能
- クラッシュ状況からエラーの詳細がわかる
- アプリに組み込むのも簡単
- アナリティクスは利用状況の可視化・カスタムログの収集が可能
- イベントごとに簡易集計も可能
- プッシュ通知
- 全員への配信もできるが、特定の条件を満たすグループのみに送信することも可能
- 外部連携
- Slackからビルドできる
- REST APIが提供されているので自由に連携できる
- 例えば、プッシュ通知もAPIが提供されている
テストは様々な実機でテストできるので、特定のOSや機種でだけ発生する問題を解決するのに便利そうだなと思いました。もっと対応機種が増えてくれるといいですね! また、Slackからビルドできるの初めて知ったのですがこれは便利ですね。
App Center 開発チームへのフィードバックについて
スピーカーはMicrosoftのちょまど (千代田まどか)さん(@chomado)です。
スライド
資料が公開され次第掲載します。
内容
- 言いたいのはこれだけ!
- App Centerの製品チームはユーザーからのフィードバックを求めてる!
- App Centerの画面右下のフィードバックボタンからフィードバックを送ってみよう!
App Centerの画面からフィードバックを送るデモをしていただきました。
チャットで簡単にエンジニアリングチームに質問できるのはいいですよね〜。
App Center、iOS/Android ネイティブ
スピーカーはなかしょさん(@nakasho_dev)です。
スライド
内容
公式サンプルアプリを使って、App Centerの使い方を紹介していただきました。 iOS、Androidそれぞれ、SDKの導入から使い方まで丁寧に解説していただきました。 以下、いくつか気になったポイントです。
- iOS
- App CenterのSDKはCocoaPodsには対応しているがCarthageには対応していないので対応して欲しい
- プッシュ通知の設定で「サイレントプッシュにするかどうかの設定」がある
- Android
- 言語で「Java」を選択すればKotlinも使える
- iOSと違い、AndroidにはLint source codeの機能がある
- なぜ、CI/CDが必要か?
- スノーフレークによる不具合を防ぐため
- 常に同一の条件でビルド・テスト・配信するためにはデベロッパーの開発環境では限界がある
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
スピーカーはともひろさん (@hiro128_777) Microsoft MVP です。
スライド
内容
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイントについて話をしていただきました。
- GitHubと連携するときのポイント
- リポジトリの所有者権限をもっていないとだめ
- Bitbucketもアクセスレベルに「管理」を設定しないとだめ
- TFVCは未対応
- 実機ビルドのポイント
- プロビジョニングプロファイルと証明書が必要
- Macでp12ファイルが書き出せないとき(グレーアウトされていて選択できない)は分類で自分の証明書を選択すれば書き出せるようになる
- 実機テスト
- 有料(試用期間1ヶ月)
- 手順(Xamarin.UITest)
- node.jsのインストール
- App Center CLIのインストール
- テストファイルの生成
- テストファイルのアップロード
- コマンドがわからず調べたらオプションが多かった
- テストファイルのアップロードに必要なオプション
- app アプリの名前
- devices デバイスのID。画面上から設定すると表示される
- app-path ipaファイルのパス
- test-series テストシリーズの名前。画面上から設定すると表示される
- locale テスト時のデバイスのロケール。日本語ならja_JP
- build-dir テストのアセンブリのディレクトリのパス
- uitest-tools-dir test-cloud.exeのディレクトリのパス
まとめとして、ハマりポイントはいくつかあるようですが、基本的にはものすごく簡単に設定可能とのことです。
App Center と VSTS の使い分け(デモもあるよ)
スピーカーは三宅さん (@kazuyukimiyake), ZEN ARCHITECTS, Microsoft MVP です。
スライド
内容
App Center と VSTS の使い分け の話をしていただきました。
- 当初の感想は、App Center と Visual Studio Team Service同じ?何が違う? だった
- App CenterとVSTSの機能比較
- Buildは被っている
- VSTSにしかないものもある(リポジトリとか)
- 組み合わせて使うのがベストプラクティス!
- App Centerにあるものはそれを優先
- VSTSにしかないものを必要に応じて使う
- リポジトリ
- App Centerにはリポジトリ機能は無い
- VSTSでGitリポジトリを作成し、App Centerから紐づける
- App CenterからVSTSへの接続
- MS個人アカウント / MS組織アカウント
- VSTS Gitリポジトリ
- Githubと同じようにプルリクエストが使える
- 1つのプロジェクトに複数のリポジトリを持てる
- 無制限でプライベートリポジトリが作成できる
- 5名まで無償(ステークホルダー権限は対象外)
- MSDNサブスクライバーは5人のカウント対象外
- VSTSは認証が特殊なのでGit専用のcredentialは作成した方がよい
- ビルド
- ビルドエンジンは一緒だよ(by Lukeさん)
- UIが違う。App Centerの方がUIが簡単。VSTSは細かいカスタマイズができる。
- VSTSはYAMLでビルド定義が書ける(まだPreviewなので機能を有効にする必要がある)
- Configuration as Code が可能
- Bug trackerとVSTSタスクの連携
- アプリがクラッシュしたら自動でVSTSのタスクを作成することも可能
- VSTSのタスク管理
- プロセスはScrumがおすすめ
- ソースのコミットやブランチと紐づけ可能(ぜひ使って欲しい)
- VSTSはオーナー権限が変えられるので納品の時に楽
App Centerの方がわかりやすい部分もある一方で、VSTSにしか無い機能もあるので必要に応じて組み合わせるのが良いとのことです。
App Center Analyticsを使い倒そう
スピーカーはにゅいさん(@nuits_jp), Microsoft MVPです。
スライド
内容
App Centerの機能の中で、Analyticsに特化した話をしていただきました。
- App Center Analytics
- ユーザーの行動解析のための機能
- Overview
- アプリの利用状況をグラフィカルに確認できる
- Custom Events
- ユーザー操作のイベントを収集できる
- Log Flow
- リアルタイムに通知されたイベントを確認できる
- Export to Azure
- Analyticsで収集した情報をAzureのApplication Insightsにエクスポートする機能
- 収集はAnalytics、分析はInsights
- 「どこで」、「どう」トラッキングするか
- MVVMだと「どこで」トラッキングする?
- ViewからViewModelのプロパティの更新 または Commandの実行
- ViewModelからModelのメソッド呼びだし
- ユーザー操作の詳細な分析を行うにはViewとViewModel間が適切
- Reactive Propertyで「どう」トラッキングする?
- ReactivePropertyやReactiveCommand、AsyncReactiveCommandをSubscribeしてイベントトラッキングする
- MVVMだと「どこで」トラッキングする?
おわりに
正直、こんな豪華なスピーカーの方達によるセッションが無料とはお得感が半端なかったです。
特にApp Centerの中の人であるLukeさんに直接質問できてよかったです。(ちょまどさん英語サポートありがとうございました!)
Lukeさんもユーザーの声は非常に大事だとおっしゃっていたので、App Centerを使ったことが無い方も使ってみて、要望はじゃんじゃんフィードバックしてみてはいかがでしょうか?